Windows查看服务占用端口 您所在的位置:网站首页 centos 查端口 Windows查看服务占用端口

Windows查看服务占用端口

#Windows查看服务占用端口| 来源: 网络整理| 查看: 265

本文以MongoDB为例,其他服务的查看流程类似:

1.查看服务的PID

名词解释: 服务:电脑访问数据库,其实数据库就是一种服务。服务必须要开启后,才能对其进行访问。而电脑开启1个服务,这个服务在电脑中就是1个进程。 PID:process identification的简称,进程识别符,一般是10进制的数字。 在Windows系统中查看服务的PID的方法是打开任务管理器,进入详细信息页面。 如果打开任务管理器时是简略信息页面,点击“详情信息”按钮,如下图所示:

image.png

进入详情信息页面,选择下图红色箭头所示的服务:

image.png

先点击下图红色箭头所示的名称,会按照服务名称从小到大排序。 例如我们要找MongoDB服务的PID,按照顺序往下翻,如下图所示:

image.png

从上图可以看出MongoDB服务的PID为4584。

2.查看PID对应的端口

打开cmd,按Windows+r组合键,在运行窗口中,输入命令cmd,如下图所示:

image.png

在运行窗口中,输入命令cmd,点击“确定”按钮或者按Enter键进入cmd窗口。 在cmd窗口中输入命令:netstat -ano 运行结果如下图所示:

image.png

从上图中可以看出PID为4584的进程的本地地址为:127.0.0.1:27017 即PID为4584的进程占用端口为27017

3.查找PID对应的端口

查找命令:netstat -ano|findstr "{}" 大括号替换为进程的PID,如下图所示:

image.png

4.编写python代码

将上面3步的思路用python代码实现,以后的查看就可以通过运行python代码得出结果。 代码中有2个函数,定义getPid函数用于模糊搜索进程名和其对应的PID,传入参数processName数据类型为字符串; 定义pid2port函数用于获取PID及其占用的IP本地地址和端口,传入参数pip_input的数据类型为字符串或整数。 在命令行中tasklist | find "{}"可以用于模糊查找进程对应的PID,大括号替换为模糊查找内容。 模糊查找进程名含有sql的进程命令:tasklist | find "sql",如下图所示:

image.png

import os import re def getPid(processName): cmd_str = 'tasklist | find "%s"' %processName p = os.popen(cmd_str) tasklist_str = p.read() task_list =tasklist_str.split('\n')[:-1] if len(task_list) == 0: print('没有找到该进程') return [] else: process_list = [re.split('\s+',k)[0] for k in task_list] pid_list = [re.split('\s+',k)[1] for k in task_list] result = list(zip(process_list,pid_list)) print('进程和对应的PID:') for i in result: print(i[0], i[1], sep='\t') return result def pid2port(pid_input): pid_input = str(pid_input) p = os.popen('netstat -ano|findstr "%s"' %pid_input) netstat_str = p.read() netstat_list = netstat_str.split('\n')[:-1] pid_list = [re.split(r'\s+',k.strip())[-1] for k in netstat_list] address_list = [re.split(r'\s+',k.strip())[1] for k in netstat_list] port_list = [k.split(':')[-1] for k in address_list] flag = True for pid,address,port in zip(pid_list,address_list,port_list): if pid == pid_input: print('PID为%s的进程本地地址为:%s,端口号为:%s'\ %(pid,address,port)) flag = False if flag: print('PID为%s的进程没有占用端口' %pid_input) if __name__ == '__main__': processName = 'mongo' pid_list = getPid(processName) if len(pid_list) == 1: pid2port(pid_list[0][1]) elif len(pid_list) > 1: pid = input("请输入查找的PID:") pid2port(pid)

如果开启了MongoDB服务,上面一段代码的运行结果如下:

进程和对应的PID: mongod.exe 4584 PID为4584的进程本地地址为:127.0.0.1:27017,端口号为:27017


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有